package com.yxinsur.imc.business.service.impl;

import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;

import java.util.List;

import com.yxinsur.imc.business.domain.ImcContractVariable;
import com.yxinsur.imc.business.domain.ImcFundBrokerVariable;
import com.yxinsur.imc.business.mapper.ImcFundBrokerVariableMapper;
import com.yxinsur.imc.business.service.IImcFundBrokerVariableService;
import com.yxinsur.imc.business.vo.FundBrokerVariableVo;
import com.yxinsur.imc.business.vo.ImcContractVariableVo;
import com.yxinsur.imc.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * 人员口径变量(对应下拉列应显示的内容)Service业务层处理
 *
 * @author imc
 * @date 2021-10-29
 */
@Service
public class ImcFundBrokerVariableServiceImpl extends ServiceImpl<ImcFundBrokerVariableMapper, ImcFundBrokerVariable> implements IImcFundBrokerVariableService {
    @Autowired
    private ImcFundBrokerVariableMapper imcFundBrokerVariableMapper;

    /**
     * 查询人员口径变量(对应下拉列应显示的内容)
     *
     * @param id 人员口径变量(对应下拉列应显示的内容)ID
     * @return 人员口径变量(对应下拉列应显示的内容)
     */
    @Override
    public ImcFundBrokerVariable selectImcFundBrokerVariableById(Long id) {
        return imcFundBrokerVariableMapper.selectImcFundBrokerVariableById(id);
    }

    /**
     * 查询人员口径变量(对应下拉列应显示的内容)列表
     *
     * @param imcFundBrokerVariable 人员口径变量(对应下拉列应显示的内容)
     * @return 人员口径变量(对应下拉列应显示的内容)
     */
    @Override
    public List<ImcFundBrokerVariable> selectImcFundBrokerVariableList(ImcFundBrokerVariable imcFundBrokerVariable) {
        return imcFundBrokerVariableMapper.selectImcFundBrokerVariableList(imcFundBrokerVariable);
    }

    /**
     * 新增人员口径变量(对应下拉列应显示的内容)
     *
     * @param imcFundBrokerVariable 人员口径变量(对应下拉列应显示的内容)
     * @return 结果
     */
    @Override
    public int insertImcFundBrokerVariable(ImcFundBrokerVariable imcFundBrokerVariable) {
        imcFundBrokerVariable.setCreateTime(DateUtils.getNowDate());
        return imcFundBrokerVariableMapper.insertImcFundBrokerVariable(imcFundBrokerVariable);
    }

    /**
     * 修改人员口径变量(对应下拉列应显示的内容)
     *
     * @param imcFundBrokerVariable 人员口径变量(对应下拉列应显示的内容)
     * @return 结果
     */
    @Override
    public int updateImcFundBrokerVariable(ImcFundBrokerVariable imcFundBrokerVariable) {
        imcFundBrokerVariable.setUpdateTime(DateUtils.getNowDate());
        return imcFundBrokerVariableMapper.updateImcFundBrokerVariable(imcFundBrokerVariable);
    }

    /**
     * 批量删除人员口径变量(对应下拉列应显示的内容)
     *
     * @param ids 需要删除的人员口径变量(对应下拉列应显示的内容)ID
     * @return 结果
     */
    @Override
    public int deleteImcFundBrokerVariableByIds(String[] ids) {
        return imcFundBrokerVariableMapper.deleteImcFundBrokerVariableByIds(ids);
    }

    /**
     * 删除人员口径变量(对应下拉列应显示的内容)信息
     *
     * @param id 人员口径变量(对应下拉列应显示的内容)ID
     * @return 结果
     */
    @Override
    public int deleteImcFundBrokerVariableById(String id) {
        return imcFundBrokerVariableMapper.deleteImcFundBrokerVariableById(id);
    }

    @Override
    public List<FundBrokerVariableVo> listVariable() {
        List<ImcFundBrokerVariable> variableList = this.imcFundBrokerVariableMapper.listVariable();
        List<FundBrokerVariableVo> variableVoList = CollUtil.newArrayList();
        variableList.forEach(item -> {
            FundBrokerVariableVo variableVo = new FundBrokerVariableVo();
            BeanUtil.copyProperties(item, variableVo);
            variableVo.setVariableItem(JSONUtil.parseArray(item.getVariableItem()));
            variableVoList.add(variableVo);
        });
        return variableVoList;
    }
}
